15 research outputs found

    A Concurrency-Agnostic Protocol for Multi-Paradigm Concurrent Debugging Tools

    Get PDF
    Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a concurrency-agnostic debugger protocol that decouples the debugger from the concurrency models employed by the target application. As a result, the underlying language runtime can define custom breakpoints, stepping operations, and execution events for each concurrency model it supports, and a debugger can expose them without having to be specifically adapted. We evaluated the generality of the protocol by applying it to SOMns, a Newspeak implementation, which supports a diversity of concurrency models including communicating sequential processes, communicating event loops, threads and locks, fork/join parallelism, and software transactional memory. We implemented 21 breakpoints and 20 stepping operations for these concurrency models. For none of these, the debugger needed to be changed. Furthermore, we visualize all concurrent interactions independently of a specific concurrency model. To show that tooling for a specific concurrency model is possible, we visualize actor turns and message sends separately.Comment: International Symposium on Dynamic Language

    Asynchronous Snapshots of Actor Systems for Latency-Sensitive Applications

    Get PDF
    The actor model is popular for many types of server applications. Efficient snapshotting of applications is crucial in the deployment of pre-initialized applications or moving running applications to different machines, e.g for debugging purposes. A key issue is that snapshotting blocks all other operations. In modern latency-sensitive applications, stopping the application to persist its state needs to be avoided, because users may not tolerate the increased request latency. In order to minimize the impact of snapshotting on request latency, our approach persists the application’s state asynchronously by capturing partial heaps, completing snapshots step by step. Additionally, our solution is transparent and supports arbitrary object graphs. We prototyped our snapshotting approach on top of the Truffle/Graal platform and evaluated it with the Savina benchmarks and the Acme Air microservice application. When performing a snapshot every thousand Acme Air requests, the number of slow requests ( 0.007% of all requests) with latency above 100ms increases by 5.43%. Our Savina microbenchmark results detail how different utilization patterns impact snapshotting cost. To the best of our knowledge, this is the first system that enables asynchronous snapshotting of actor applications, i.e. without stop-the-world synchronization, and thereby minimizes the impact on latency. We thus believe it enables new deployment and debugging options for actor systems

    Efficient and Deterministic Record & Replay for Actor Languages

    Get PDF
    With the ubiquity of parallel commodity hardware, developers turn to high-level concurrency models such as the actor model to lower the complexity of concurrent software. However, debugging concurrent software is hard, especially for concurrency models with a limited set of supporting tools. Such tools often deal only with the underlying threads and locks, which obscures the view on e.g. actors and messages and thereby introduces additional complexity. To improve on this situation, we present a low-overhead record & replay approach for actor languages. It allows one to debug concurrency issues deterministically based on a previously recorded trace. Our evaluation shows that the average run-time overhead for tracing on benchmarks from the Savina suite is 10% (min. 0%, max. 20%). For Acme-Air, a modern web application, we see a maximum increase of 1% in latency for HTTP requests and about 1.4 MB/s of trace data. These results are a first step towards deterministic replay debugging of actor systems in production

    Capturing High-level Nondeterminism in Concurrent Programs for Practical Concurrency Model Agnostic Record and Replay

    Get PDF
    With concurrency being integral to most software systems, developers combine high-level concurrency models in the same application to tackle each problem with appropriate abstractions. While languages and libraries offer a wide range of concurrency models, debugging support for applications that combine them has not yet gained much attention. Record & replay aids debugging by deterministically reproducing recorded bugs, but is typically designed for a single concurrency model only. This paper proposes a practical concurrency-model-agnostic record & replay approach for multi-paradigm concurrent programs, i.e. applications that combine concurrency models. Our approach traces high-level non- deterministic events by using a uniform model-agnostic trace format and infrastructure. This enables ordering- based record & replay support for a wide range of concurrency models, and thereby enables debugging of applications that combine them. In addition, it allows language implementors to add new concurrency mod- els and reuse the model-agnostic record & replay support. We argue that a concurrency-model-agnostic record & replay is practical and enables advanced debugging support for a wide range of concurrency models. The evaluation shows that our approach is expressive and flexible enough to support record & replay of applications using threads & locks, communicating event loops, communicating sequential processes, software transactional memory and combinations of those concurrency models. For the actor model, we reach recording performance competitive with an optimized special-purpose record & replay solution. The average recording overhead on the Savina actor benchmark suite is 10% (min. 0%, max. 23%). The performance for other concurrency models and combinations thereof is at a similar level. We believe our concurrency-model-agnostic approach helps developers of applications that mix and match concurrency models. We hope that this substrate inspires new tools and languages making building and maintaining of multi-paradigm concurrent applications simpler and safer

    Peeling graphite layer by layer reveals the charge exchange dynamics of ions inside a solid

    Get PDF
    Over seventy years ago, Niels Bohr described how the charge state of an atomic ion moving through a solid changes dynamically as a result of electron capture and loss processes, eventually resulting in an equilibrium charge state. Although obvious, this process has so far eluded direct experimental observation. By peeling a solid, such as graphite, layer by layer, and studying the transmission of highly charged ions through single-, bi- and trilayer graphene, we can now observe dynamical changes in ion charge states with monolayer precision. In addition we present a first-principles approach based on the virtual photon model for interparticle energy transfer to corroborate our findings. Our model that uses a Gaussian shaped dynamic polarisability rather than a spatial delta function is a major step in providing a self-consistent description for interparticle de-excitation processes at the limit of small separations

    Peeling graphite layer by layer reveals the charge exchange dynamics of ions inside a solid

    Get PDF
    Over seventy years ago, Niels Bohr described how the charge state of an atomic ion moving through a solid changes dynamically as a result of electron capture and loss processes, eventually resulting in an equilibrium charge state. Although obvious, this process has so far eluded direct experimental observation. By peeling a solid, such as graphite, layer by layer, and studying the transmission of highly charged ions through single-, bi- and trilayer graphene, we can now observe dynamical changes in ion charge states with monolayer precision. In addition we present a first-principles approach based on the virtual photon model for interparticle energy transfer to corroborate our findings. Our model that uses a Gaussian shaped dynamic polarisability rather than a spatial delta function is a major step in providing a self-consistent description for interparticle de-excitation processes at the limit of small separations

    Debugging support for non-deterministic actor programs

    No full text
    The widespread adoption of concurrency in modern programs increases the importance of concurrency bugs that come with it. Compared to other approaches, the actor model is able to reduce these issues to one area: message races. Besides message races, where messages are sent to the same receiver without having a ordering guarantee, small differences in program scheduling add another source of non-determinism. The resulting non-deterministic program behavior is particularly challenging when it affects the occurrence of bugs, so that they occur in only a few program executions, which makes it hard to debug the application. As a solution to the problem of non-determinism, this thesis proposes a record and replay approach for the actor model, which uses recorded data of a previous execution to enforce the same order of messages in a replay execution. Therefore providing the ability to deterministically repeat executions of non-deterministic programs for debugging. Furthermore, assertions/contracts are presented as a way to identify issues in complex actor programs. The combined use of deterministic replay and high-level assertions/contracts simplifies interactive debugging of such systems for developers. Our experiments show, that tracing executions of actor programs has a low overhead for 15 benchmarks of the Savina benchmark suite, which makes it practical for a range of common programs using the actor model. To my knowledge, this is the first system combining a record and replay approach with assertions/contracts to simplify debugging of non-deterministic communicating event loop actor programs.Concurrency erfreut sich heute einer weiten Verbreitung, dadurch erhöht sich auch die Bedeutung, die den damit einhergehenden Problemen zukommt. Im Vergleich mit anderen Ansätzen ist das Aktor Model in der lage diese Probleme auf einen einzigen Bereich einzuschränken: Message Races. Neben Message Races, bei denen Nachrichten ohne garantiere Ordnung an einen Empfänger gesendet werden, können auch kleine Unterschiede im Scheduling eine Quelle für Non-Determinismus sein. Das resultierende non-deterministische Verhalten eines Programms stellt eine besondere Herausforderung dar, wenn dadurch das Auftreten eines Fehlers beeinflusst wird, wodurch dieser nur selten auftritt, was das debuggen erheblich erschwert. Als mögliche Lösung für dieses Problem des non-determinismus, wird in dieser Arbeit ein Record and Replay Ansatz präsentiert, welcher Daten, die in einer früheren Ausführung aufgezeichnet wurden, nutzt um die gleiche Message Reihenfolge im Replay zu erzwingen. Dadurch wird es möglich non-deterministische Programme Deterministisch zu wiederholen und zu debuggen. Außerdem werden Assertions/Contracts als Maßnahme zur Identifizierung von Problemen in komplexen Aktor Programmen präsentiert. Die kombinierte Verwendung von deterministischem Replay und Assertions/Contracts vereinfacht interaktives debuggen solcher Systeme für Entwickler. Unsere Experimente zeigen, dass Tracing von Aktor Programmen für 15 Benchmarks der Savina Benchmark Suite einen niedrigen Overhead hat, dadurch ist es für eine Reihe von Programmen geeignet, die auf dem Aktor Model basieren. Nach meinem Wissen ist dies das erste System, welches den Record and Replay Ansatz mit Assertions/Contracts kombiniert, um debuggen non-deterministischer Communicating Event Loop Aktor Programme zu vereinfachen.submitted by Dominik AumayrUniversität Linz, Masterarbeit, 2017(VLID)224637

    Makroökonomische Effekte der aktiven Arbeitsmarktpolitik in Österreich 2001-2007 : Eine regionalökonometrische Evaluierung

    No full text
    "Das Ziel der Studie ist es, die Effekte aktiver Arbeitsmarktpolitik in Österreich auf makroökonomische Größen zu untersuchen. Im Vergleich zu Evaluationsstudien auf Mikroebene steht also nicht die Wirkung einer Maßnahme auf die TeilnehmerInnen im Vordergrund, sondern auf die Gesamtheit der Arbeitssuchenden bzw. Erwerbspersonen. Effekte aktiver Arbeitsmarktpolitik auf Ebene der TeilnehmerInnen müssen allerdings als Voraussetzung für Effekte auf der Makroebene betrachtet werden. Wie theoretisch von Calmfors (1994) dargestellt, gibt es eine Vielzahl von Wirkungskanälen von aktiver Arbeitsmarktpolitik auf unterschiedliche gesamtwirtschaftliche Größen. In der vorliegenden Studie wurden drei ökonomische Ergebnisgrößen analysiert: Übergänge von Arbeitssuche in ungeförderte unselbstständige Beschäftigung, Arbeitssuchendenquote und Partizipationsquote. Zusätzlich wurden die zeitlichen Zusammenhänge des Arbeitsmarktes in Bezug auf arbeitsmarktpolitische Maßnahmen analysiert." (Autorenreferat, IAB-Doku

    5-Methoxyleoligin, a Lignan from Edelweiss, Stimulates CYP26B1-Dependent Angiogenesis In Vitro and Induces Arteriogenesis in Infarcted Rat Hearts In Vivo

    Get PDF
    <div><p>Background</p><p>Insufficient angiogenesis and arteriogenesis in cardiac tissue after myocardial infarction (MI) is a significant factor hampering the functional recovery of the heart. To overcome this problem we screened for compounds capable of stimulating angiogenesis, and herein investigate the most active molecule, 5-Methoxyleoligin (5ML), in detail.</p> <p>Methods and Results</p><p>5ML potently stimulated endothelial tube formation, angiogenic sprouting, and angiogenesis in a chicken chorioallantoic membrane assay. Further, microarray- and knock down- based analyses revealed that 5ML induces angiogenesis by upregulation of CYP26B1. In an <i>in vivo</i> rat MI model 5ML potently increased the number of arterioles in the peri-infarction and infarction area, reduced myocardial muscle loss, and led to a significant increase in LV function (plus 21% 28 days after MI).</p> <p>Conclusion</p><p>The present study shows that 5ML induces CYP26B1-dependent angiogenesis <i>in vitro</i>, and arteriogenesis <i>in vivo</i>. Whether or not CYP26B1 is relevant for <i>in vivo</i> arteriogenesis is not clear at the moment. Importantly, 5ML-induced arteriogenesis <i>in vivo</i> makes the compound even more interesting for a post MI therapy. 5ML may constitute the first low molecular weight compound leading to an improvement of myocardial function after MI.</p> </div
    corecore